package niuke;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Stack;

//public class niuKeMain13 {
//    public boolean isContains (TreeNode root1, TreeNode root2) {
//     if (root1==null) return false;
//     if (root1.val!= root2.val) return isContains(root1.left,root2)||isContains(root1.right,root2);
//     else {
//         return isSame(root1,root2);
//     }
//    }
//    public boolean isSame(TreeNode root1,TreeNode root2){
//        if (root1==null&&root2==null){
//            return true;
//        }if(root1==null||root2==null) return false;
//        return root1.val==root2.val&&isSame(root1.left,root2.left)&&isSame(root1.right,root2.right);
//    }
//    public int[] postorderTraversal (TreeNode root) {
//        // write code here
//        List<TreeNode> list=new ArrayList<>();
//        TreeNode prev=null;
//        Stack<TreeNode> stack=new Stack<>();
//        TreeNode node=root;
//        while (node!=null||!stack.isEmpty()){
//            while (node!=null){
//                stack.push(node);
//                node=node.left;
//            }
//            TreeNode node1=stack.peek();
//            if (node1.right==null||prev==node1.right){
//                list.add(node1);
//                stack.pop();
//                prev=node1;
//            }else {
//                node=node1.right;
//            }
//        }
//        int[] arr=new int[list.size()];
//        int n=arr.length;
//
//        for (int i = 0; i < n; i++) {
//            arr[i]=list.get(i).val;
//        }
//        return arr;
//    }
//    public int evalRPN (String[] tokens) {
//        // write code here
//        if (tokens == null) {
//            return 0;
//        }
//        Stack<Integer> stack = new Stack<>();
//        int n = tokens.length;
//        for (int i = 0; i < n; i++) {
//            String str = tokens[i];
//            if (str.equals("+")) {
//                int n1 = stack.pop();
//                int n2 = stack.pop();
//                stack.push(n1 + n2);
//            } else if (str.equals("*")) {
//                int n1 = stack.pop();
//                int n2 = stack.pop();
//                stack.push(n1 * n2);
//            } else if (str.equals("-")) {
//                int n1 = stack.pop();
//                int n2 = stack.pop();
//                stack.push(n2 - n1);
//            } else if (str.equals("/")) {
//                int n1 = stack.pop();
//                int n2 = stack.pop();
//                stack.push(n2 / n1);
//            } else {
//                stack.push(Integer.parseInt(str));
//            }
//        }
//        return stack.pop();
//    }
//}